将数据放入头文件中是否可以"正常"?

您所在的位置:网站首页 system 函数头文件 将数据放入头文件中是否可以"正常"?

将数据放入头文件中是否可以"正常"?

#将数据放入头文件中是否可以"正常"?| 来源: 网络整理| 查看: 265

比方说,我创建的C.一个简单的库调用地块比方说,我有一对夫妇的功能,例如PlotFunction(),SetTitle(),SetScale()等我们也可以说我想提供一些基本的情节,如Triangle,Rectangle等这是资源文件.我认为这些资源将被保存为数组(e.g. triangle[] = {0, 1, 2, 3, 2, 1, 0})

这是一个可以将数据包含在头文件中的示例吗?通常我认为头文件是为函数原型保留的,但这似乎是一个在头中包含变量/结构的实例.

这被认为是不好的做法吗?有更好的替代方案吗?

1> John Zwinck..:

您不应该将这些数据放在头文件中.代替:

extern const int triangle[]; extern const size_t triangle_size;

然后在源(.c)文件中:

const int triangle[] = {0, 1, 2, 3, 2, 1, 0}; const size_t triangle_size = sizeof(triangle) / sizeof(triangle[0]);

这样,数据只能编译和链接一次.

但是,如果您确实需要使用此数据来实际有效地初始化其他变量,您可以考虑这样:

#define TRIANGLE {0, 1, 2, 3, 2, 1, 0}

然后用户可以这样做:

int shape[] = TRIANGLE;

像野生这样的着名例子是PTHREAD_MUTEX_INITIALIZER.

这样做的另一个好处是,您可以更改数据而不会导致完全重建.对标头的更改会导致在包含它们的所有文件中进行重建.


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3